package com.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pojo.Chongzhi;
import com.vo.ChongzhiVo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface ChongzhiDAO extends BaseMapper<Chongzhi> {

    IPage<ChongzhiVo> getCzRecordByUser(Page page, @Param("staffId") String staffId, @Param("time1") String time1, @Param("time2") String time2);

    IPage<ChongzhiVo> getCzRecord(Page page, @Param("staffName") String staffName, @Param("time1") String time1, @Param("time2") String time2, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList);

    List<ChongzhiVo> exportByExecl(@Param("staffName") String staffName, @Param("time1") String time1, @Param("time2") String time2, @Param("queryStr") String queryStr, @Param("zyNameList") List<String> zyNameList);

    BigDecimal getTotalAmount();

    List<Map<String,Object>> getDayAmountByMonth();


    /**
     * 获取充值点的充值记录
     * @param page
     * @param operUser
     * @param staffName
     * @param startTime
     * @param endTime
     * @return
     */
    IPage<ChongzhiVo> getCzRecordByRechargeStation(Page page, @Param("operUser") String operUser, @Param("staffName") String staffName,
                                                   @Param("startTime") String startTime, @Param("endTime") String endTime);

    BigDecimal getRechargeTotalAmount();
    BigDecimal getRechargeDayAmount(@Param("curDate") String curDate);
    BigDecimal getRechargeMonthAmount(@Param("curDate") String curDate);
    List<Map<String,Object>> getRechargeAmount();

    /**
     * 获取本年度每个充值点的充值额
     * @return
     */
    IPage<ChongzhiVo> getCurYearRechargeAmount(Page page);


    /**
     * 统计充值点的充值金额，包含今天，本月，累计三种类型
     * @param stationId
     * @param monthStart
     * @param monthEnd
     * @return
     */
    Map countMoney(@Param("stationId") String stationId, @Param("monthStart") String monthStart, @Param("monthEnd") String monthEnd);


    List<Map<String,Object>> getDayAmountOfMonthByStation(@Param("stationId") String stationId);

    /**
     * 统计昨天各充值点的充值金额
     * @return
     */
    List<Map<String,Object>> countAmountByDay();
}
